// Copyright 2012 Google Inc. All Rights Reserved.

package com.google.appengine.preferencessync.internal.merge;

import com.google.appengine.preferencessync.internal.InternalSyncException;
import com.google.appengine.syncserver.shared.PropertyChange;

import android.content.SharedPreferences;

import java.util.ArrayList;

/**
 * Interface for implementing internal merge handlers.
 */
public interface InternalMergeHandler {
  /** 
   * @param clientPreferences {@link SharedPreferences} of client
   * @param clientChanges Changes made by client since last sync.
   * @param serverChanges Changes made by server since last sync.
   * @throws InternalSyncException
   */
  public void merge(SharedPreferences clientPreferences, ArrayList<PropertyChange> clientChanges,
      ArrayList<PropertyChange> serverChanges) throws InternalSyncException;
}
